<?php

class Data extends Base
{
    protected $error, $params=array(), $model, $classOptions=array(), $htmlOptions=array();
    protected $path=DATA;

    public function __construct($data='',$params=array())
    {
        $this->params=$params;
    }

    public function getAttributes()
    {
        return $this->params;
    }

    public function setModel($model)
    {
        if(is_object($model)) $this->model=$model;
        elseif(is_string($model)) $this->model=Sys::loadModel($model);
        else Sys::app()->error='Передана неправильная модель в обработчик данных '.get_class($this).' Это должен быть либо объект модели, либо имя существующего класса моедели.';
    }

    public function getPath()
    {
        return $this->path;
    }

    public function getError()
    {
        return $this->error;
    }

    public static function getLinesPerPage($params=array())
    {
        if($params && isset($params['limit'])){
            $limit=$params['limit'];
            $limit=explode(', ',$limit);
            if(is_array($limit) && sizeof($limit)==1) $limit=explode(',',$limit[0]);
            if(is_array($limit) && sizeof($limit)==1) $limit=explode(' ',$limit[0]);
            if(is_array($limit) && sizeof($limit)==1) return array('start'=>0,'limit'=>$limit[0]);
            else return array('start'=>$limit[0],'limit'=>$limit[1]);
        }else{
            return array('start'=>0,'limit'=>Sys::app()->config->paging->dataLimit);
        }
    }

    protected function setParams($params=array())
    {
        if(isset($params['htmlOptions']) && is_array($params['htmlOptions'])){
            foreach(array_keys($this->htmlOptions) as $name){
                if(isset($params['htmlOptions'][$name])){
                    $this->htmlOptions[$name]=$params['htmlOptions'][$name];
                }
            }
            unset($params['htmlOptions']);
        }elseif(is_array($params)){
            foreach(array_keys($this->htmlOptions) as $name){
                if(isset($params[$name])){
                    $this->htmlOptions[$name]=$params[$name];
                    unset($params[$name]);
                }
            }
        }
        $this->params=$params;
    }
}